package fatcat;
import java.util.List;
import java.util.Map;
import net.minecraft.client.Minecraft;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.util.WeightedRandomFishable;
import net.minecraftforge.common.ChestGenHooks;
import net.minecraftforge.common.FishingHooks;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.common.config.Property;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.IGuiHandler;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
import fatcat.gui.GuiStatusHandler;
import fatcat.model.CatSkinLoader;
@Mod(modid = FatCatMod.MODID, version = FatCatMod.VERSION)
public class FatCatMod {
public static final String MODID = "fatcat";
public static final String VERSION = "1.1.0";
public static final int STATUS_GUI_ID = 0;
public static Item egg;
public static Item unko;
public static Item brush;
public static Item furball;
public static Item feather_toy;
/* デバッグモード */
public static boolean DEBUG = true;
// 育成モードをオフにするオプション
public static boolean breeding_mode = true;
// ロギング
public static boolean logging = false;
/** This is the starting index for all of our mod's item IDs */
private static int modEntityIndex = 0;
@Instance(MODID)
public static FatCatMod instance;
@SidedProxy(clientSide = "fatcat.ClientProxy", serverSide = "fatcat.CommonProxy")
public static CommonProxy proxy;
private Map<String, String> skinMap;
private List<String> skinTypes;
private CatSkinLoader skinLoader;
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
egg = new ItemFatCatEgg().setUnlocalizedName("fatcat_egg");
unko = new ItemFatCatUnko().setUnlocalizedName("fatcat_unko");
brush = new ItemCatBrush().setUnlocalizedName("fatcat_brush");
furball = new ItemFurball().setUnlocalizedName("furball");
feather_toy = new ItemFeatherToy().setUnlocalizedName("fatcat_feather_toy");
GameRegistry.registerItem(egg, egg.getUnlocalizedName().substring(5));
GameRegistry.registerItem(unko, unko.getUnlocalizedName().substring(5));
GameRegistry.registerItem(brush, brush.getUnlocalizedName().substring(5));
GameRegistry.registerItem(furball, furball.getUnlocalizedName().substring(5));
GameRegistry.registerItem(feather_toy, feather_toy.getUnlocalizedName().substring(5));
EntityRegistry.registerModEntity(EntityFatCat.class, "FatCat", ++modEntityIndex, this, 64, 10, true);
EntityRegistry.registerModEntity(EntityItemUnko.class, "FatCatUnko", ++modEntityIndex, this, 64, 10, true);
GameRegistry.addRecipe(
new ItemStack(brush, 1),
"BT ", "BT ", " T ",
'B', Blocks.hay_block, 'T', Items.stick);
GameRegistry.addRecipe(
new ItemStack(feather_toy, 1),
" F ", " F ", " T ",
'F', furball, 'T', Items.stick);
// Get a fatcat egg via fishing.
FishingHooks.addTreasure(new WeightedRandomFishable(new ItemStack(egg), 1));
ChestGenHooks.addItem(ChestGenHooks.PYRAMID_DESERT_CHEST, new WeightedRandomChestContent(new ItemStack(egg, 1, 0), 1, 1, 15));
ChestGenHooks.addItem(ChestGenHooks.PYRAMID_JUNGLE_CHEST, new WeightedRandomChestContent(new ItemStack(egg, 1, 0), 1, 1, 15));
ChestGenHooks.addItem(ChestGenHooks.MINESHAFT_CORRIDOR, new WeightedRandomChestContent(new ItemStack(egg, 1, 0), 1, 1, 7));
Configuration config = new Configuration(event.getSuggestedConfigurationFile());
config.load();
Property breeding_mode_property = config.get(Configuration.CATEGORY_GENERAL, "BreedingMode", true);
breeding_mode_property.comment = "Breeding MODE(true/false): FatCat status is fixed if you disable this option";
breeding_mode = breeding_mode_property.getBoolean(true);
Property logging_mode_property = config.get(Configuration.CATEGORY_GENERAL, "Logging", false);
logging_mode_property.comment = "logging for debug";
logging = logging_mode_property.getBoolean(false);
Property debug_property = config.get(Configuration.CATEGORY_GENERAL, "Debug", false);
debug_property.comment = "debugging mode for development";
DEBUG = debug_property.getBoolean(false);
config.save();
}
@EventHandler
public void init(FMLInitializationEvent event)
{
}
@EventHandler
public void load(FMLInitializationEvent event) {
proxy.registerRenderers();
NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiStatusHandler());
}
public List<String> getSkinTypes() {
return skinLoader.getSkinTypes();
}
public Map<String, String> getSkinMap() {
return skinLoader.getSkinMap();
}
public void setSkinLoader(CatSkinLoader loader) {
this.skinLoader = loader;
}
}